#ifndef BinarySearchTree_H
#define BinarySearchTree_H

typedef int ElementType;
struct TreeNode;
typedef struct TreeNode *Position;
typedef Position SearchTree;
struct TreeNode
{
    ElementType Element;
    SearchTree Left;
    SearchTree Right;
};

SearchTree MakeEmpty(SearchTree T);
Position Find(ElementType x, SearchTree T);
Position FindMin(SearchTree T);
Position FindMax(SearchTree T);
SearchTree Insert(ElementType x, SearchTree T);
SearchTree Delete(ElementType x, SearchTree T);
void PrintTree(SearchTree T);
#endif